GO
1. CentOS6 的网络配置
1.1. 获取IP、网关等信息
安装好CentOS后,第一件事情就是配置IP,让机器连接网络,之后便能够通过远程工具(如Putty、Xshell、SecureCRT等)来进行管理了。
- 首先,可以用 ifconfig 查看网卡的IP等信息。
- 输入 ifconfig 后默认只有一个网卡的信息,即 lo 网卡,它是回环网卡,每个计算机都有这个网卡IP的,它的主要作用是机器内部通信。
- 可以用 ifconfig -a 来查看所有网卡的信息(包括未启用的网卡)。一般会显示名字类似 eth0 网卡的信息,这时候这块网卡还未启用,接下来我们应该启用它。
- 用 dhclient 让网卡自动获取一个IP。
- 这个命令是自动获取IP的命令,如果Linux所在网络环境有dhcp服务器,运行该命令后,Linux机器就可以自动获取到一个IP。(在服务器上用不到)
- 此时,这个IP是自动获取的,也就是动态的,实际机房的服务器IP并不是自动获取的,都需要固定好,所以,应该为eth0网卡设置一个静态IP。
- 在设置静态IP之前,先用 route 命令查到 NETMASK 和 GATEWAY,以便我们在设置静态IP时填在配置文件里。
- route 这个命令是用来查看路由的。
- route -n 可查看到网关。
- 还有一个命令可以查看到IP地址: ip add
- 配置网卡的配置文件
1.2. 配置网卡配置文件
配置eth0网卡为静态IP,即配置该网卡的配置文件。
- 它的配置文件类似于 /etc/sysconfig/network-scripts/ifcfg-eth0
在这个配置文件中需要更改的地方有:
12345678ONBOOT=no 改为 yes //开机启动网卡BOOTPROTO=dhcp 改为 static //IP的类型,动态还是静态==>新添加的几行内容:IPADDR=192.168.1.222 //这个IP地址是我们通过命令 ifconfig eth0 查到的。(之前通过dhclient命令获取的动态IP,可以自己填写为合适的IP地址)NETMASK=255.255.255.0 //子网掩码GATEWAY=192.168.1.1 //网关DNS1=202.106.0.20 //域名服务器的地址,目前的IP地址为联通的一个DNS服务器IP。DNS2=8.8.8.8 //可以添加多个DNS服务器IP,就像这样写成DNS1和DNS2修改后的配置文件内容如下所示(一个例子):
123456789101112DEVICE=eth0HWADDR=00:0C:29:B0:78:92TYPE=EthernetUUID=5efd98d1-d7b2-447f-9036-e4c73dfab70aONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=192.168.0.103NETMASK=255.255.255.0GATEWAY=192.168.0.1DNS1=4.4.4.4DNS2=8.8.8.8
1.3. 重启网络服务
修改完配置文件后,需要将网络服务重启才能生效。输入下面的命令即可重启网络服务:
- service network restart
- 或者 /etc/init.d/network restart
1.4. 测试网络连通性
通过 ping 命令来测试一下网络的连通性:
- ping www.sina.com
- 如果ping通了,就说明静态IP配置成功,并能连接外网了。
- 在Linux下ping会一直持续,需要按快捷键 Ctr+C 终止该程序。
2. CentOS7 的网络配置
2.1. 获取IP、网关等信息
- 自动获取IP : dhclient
- 查看自动获取IP后是否可以联网 : ping www.sina.com
- 查看IP : ip addr
- 查看网关 : ip route
2.2. 配置网卡配置文件
这一步是为了配置静态IP。
- 网卡的配置文件的名字类似于 /etc/sysconfig/network-scripts/ifcfg-ens33
在这个配置文件中需要更改的地方有:
12345678ONBOOT=no 改为 yes //开机启动网卡BOOTPROTO=dhcp 改为 static //IP的类型,动态还是静态==>新添加的几行内容:IPADDR=192.168.1.222 //这个IP地址是我们通过命令 ifconfig eth0 查到的。(之前通过dhclient命令获取的动态IP,可以自己填写为合适的IP地址)NETMASK=255.255.255.0 //子网掩码GATEWAY=192.168.1.1 //网关DNS1=202.106.0.20 //域名服务器的地址,目前的IP地址为联通的一个DNS服务器IP。DNS2=8.8.8.8 //可以添加多个DNS服务器IP,就像这样写成DNS1和DNS2修改后的配置文件内容如下所示(一个例子):
123456789101112131415161718192021TYPE=EthernetBOOTPROTO=staticDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=18e90827-5eed-4b32-a5e1-3abdad76d8ccDEVICE=ens33ONBOOT=yesIPADDR=192.168.0.105NETMASK=255.255.255.0GATEWAY=192.168.0.1DNS1=119.29.29.29
2.3. 重启网络服务
- 重启网络服务 systemctl restart network.service
- 再查看IP检查是否正确 ip addr
2.4. 测试网络连通性
- ping -c 4 www.sina.com
3. 网络初识补充内容
3.1. 网卡名称说明
- lo:回环网卡,只在本地使用
- eth0:以太网卡,用以太网线连接
- fddil:光纤网卡,用光纤网线连接
3.2. ifconfig 查看网卡IP
ifconfig不加任何参数,只打印当前网卡的IP相关信息(子网掩码、网关等),在之前的博客中已经记录了关于这个命令的使用。在shell下设置IP,需要修改相关的配置文件,/etc/sysconfig/network-scripts/ifcfg-eth0,如果是eth1网卡,则是/etc/sysconfig/network-scripts/ifcfg-eth1,若是ens33网卡,则是/etc/sysconfig/network-scripts/ifcfg-ens33。
如果Linux上有多个网卡,而只想重启某一个网卡的话,可以使用这个命令:ifdown eth0 ; ifup eth0
ifdown 即停掉网卡,ifup即启动网卡。有一点需要注意,如果我们远程登陆服务器,当使用ifdown eth0
这个命令的时候,很有可能后面的命令ifup eth0
不会被运行,这样导致我们断网而无法连接服务器,所有请尽量使用service network restart
这个命令来重启网卡。
3.3. 查看网卡连接状态
查看网卡连接状态的命令为:mii-tool eth0
- 在虚拟机上该命令所显示的内容是:
SIOCGMIIPHY on 'eth0' failed: Operation not supported
- 在真机上该命令所显示的内容是:
eth0: nogotiated 100baseTx-FD, Link ok
- 只要看到”Link ok”就说明网卡为连接状态,如果显示”No link”说明网卡坏掉了或者没有连接网线。
还有一个命令也可以查看网卡的状态:ethtool 网卡名
- 如果网卡没有连接,最后面一行Link detected显示为no
- 命令示例如下:123[root@theshuhost ~]# ethtool eth0Settings for eth0:Link detected: yes
3.4. 单网卡配置多个IP
临时的:
ifconfig eth0:1 192.168.1.2/255.255.255.0
永久的:
在Linux系统中,网卡是可以设定多重IP的。其方法如下:
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0\:1
然后编辑ifcfg-eth0:1这个配置文件,内容如下,一定要注意DEVICE这里要写成”eth0:1”
1234567891011# cat ifcfg-eth0\:1DEVICE=eth0:1HWADDR=00:0C:29:D9:F0:52TYPE=EthernetUUID=a5442526-0329-421d-86cf-8d7f16d01374ONBOOT=yesBOOTPROTO=noneIPADDR=192.168.80.5NETMASK=255.255.255.0GATEWAY=192.168.80.2NM_CONTROLLED=yes其实就是改一下 NAME、DEVICE、IPADDR这几处
- 编辑好后,重启网卡:
ifdown eth0 && ifup eth0
- 之后再查看网卡ip检查是否设置成功:
ifconfig
,可以看到多了一个ifcfg-eth0:1
3.5. 永久更改主机名
当装完系统后,默认的主机名为localhost,使用hostname
命令就可以知道您的linux主机名是什么:
同样可以使用hostname
命令可以更改主机名(这种更改方式只是这次登陆有效,重启后还会恢复原样):
若是想永久更改主机名,则需要修改相关的配置文件/etc/hostname,其修改内容如下:
或是修改相关配置文件/etc/sysconfig/network,修改内容如下:
在CentOS7中,还有一种更改主机名的方法,这中方法会自动更改文件内容,如下所示:
3.2. 常用的几个操作
- 单网卡的关闭与启动
- 关闭:
ifconfig eth0 down
- 启动:
ifconfig eth0 up
- 查看路由表
route -n
- 禁止PING
实现方法如下:
临时
1echo 1 > /pro/sys/net/ipv4/icmp_echo_ignore_all永久
12修改 /etc/sysctl.conf 这个文件,添加如下一行:net.ipv4.icmp_echo_ignore_all = 1
- 开启转发
实现方法如下:
临时
1echo 1 > /proc/sys/net/ipv4/ip_forward永久
12修改 /etc/sysctl.conf 这个文件,添加如下一行:net.ipv4.ip_forward = 1
- 查看端口
查看服务器上开启了哪些端口:
相关工具:nmap
3.3. DNS的配置文件
DNS是用来解析域名用的,平时我们访问网站都是直接输入一个网址,而DNS把这个网址解析到一个IP。
在Linux下设置DNS非常简单,只要把DNS地址写到一个配置文件中即可。这个配置文件就是/etc/resolv.conf。
- /etc/resolv.conf
DNS(NameServer)配置文件是 /etc/resolv.conf。
该文件的内容如下(一个示例):
123; generated by sbin/dhclient-scriptnameserver 8.8.8.8nameserver 220.181.137.37如果我们是dhcp自动获取的IP,那么它会自动在/etc/resolv.conf里获取dns的ip,如果我们手动编辑该配置文件,那么重启网络服务后还会自动还原,因为我们打开了dhclient的服务,所以为了不让它受dhclient的影响,我们需要杀死dhclient:killall dhclient,同样也需要杀死NetworkManager进程;
- 默认需要我们在网卡配置文件(/etc/sysconfig/network-scripts/ifcfg-eth0)重定义DNS服务器的IP,但如果在网卡配置文件中加上 PEERDNS=no 后,则该配置文件中的DNS1= 语句失效。
关于配置文件/etc/resolv.conf的说明:
- resolv.conf有它固有的格式,一定要写成
nameserver IP
的格式。 - 上面那行以”;”开头的是注释。
- 建议写两个或多个nameserver,默认会用第一个nameserver去解析域名,当第一个解析不到时会使用第二个,以此类推。
在Linux下面有一个特殊的文件/etc/hosts也能解析域名,如下。
- /etc/hosts
/etc/hosts 文件是一个简易的DNS服务器,在该文件中添加IP和域名,即可在本地实现DNS的功能。不过需要我们手动在这里面添加”IP+域名”这些内容,它的作用是临时解析某个域名,非常有用。
示例如下:
保存一下,再ping一下www.baidu.com就会到192.168.1.111了。
关于配置文件/etc/hosts的说明:
- /etc/hosts 的格式很简单,没一行作为一条记录,分成两部分,第一部分是IP,第二部分是域名。
- 关于/etc/hosts文件有几点需要注意:
- 一个IP后面可以跟多个域名,可以是几十个,甚至上百个
- 每行只能有一个IP,也就是说,一个域名不能对应多个IP
- 如果有多行中出现相同的域名(前面IP不一样),会按最前面出现的记录来解析
OK